home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / FROMUTS / CDUNGEON / !CDUNGEON / c / DSO1 < prev    next >
Text File  |  1991-05-20  |  4KB  |  182 lines

  1. /* PRINCR- PRINT CONTENTS OF ROOM */
  2.  
  3. /*COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142*/
  4. /* ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED */
  5. /* WRITTEN BY R. M. SUPNIK */
  6.  
  7. #include "funcs.h"
  8. #include "vars.h"
  9.  
  10. void princr_(full, rm)
  11. logical full;
  12. integer rm;
  13. {
  14.     /* System generated locals */
  15.     integer i__1, i__2;
  16.  
  17.     /* Local variables */
  18.     integer i, j, k;
  19.  
  20.     j = 329;
  21. /*                         !ASSUME SUPERBRIEF FORMAT. */
  22.     i__1 = objcts_1.olnt;
  23.     for (i = 1; i <= i__1; ++i) {
  24. /*                         !LOOP ON OBJECTS */
  25.     if (! qhere_(i, rm) || (objcts_1.oflag1[i - 1] & VISIBT + 
  26.         NDSCBT) != VISIBT || i == advs_1.avehic[
  27.         play_1.winner - 1]) {
  28.         goto L500;
  29.     }
  30.     if (! (full) && (findex_1.superf || findex_1.brieff && (
  31.         rooms_1.rflag[play_1.here - 1] & RSEEN) != 0)) {
  32.         goto L200;
  33.     }
  34.  
  35. /* DO LONG DESCRIPTION OF OBJECT. */
  36.  
  37.     k = objcts_1.odesco[i - 1];
  38. /*                         !GET UNTOUCHED. */
  39.     if (k == 0 || (objcts_1.oflag2[i - 1] & TCHBT) != 0) {
  40.         k = objcts_1.odesc1[i - 1];
  41.     }
  42.     rspeak_(k);
  43. /*                         !DESCRIBE. */
  44.     goto L500;
  45. /* DO SHORT DESCRIPTION OF OBJECT. */
  46.  
  47. L200:
  48.     rspsub_(j, objcts_1.odesc2[i - 1]);
  49. /*                         !YOU CAN SEE IT. */
  50.     j = 502;
  51.  
  52. L500:
  53.     ;
  54.     }
  55.  
  56. /* NOW LOOP TO PRINT CONTENTS OF OBJECTS IN ROOM. */
  57.  
  58.     i__1 = objcts_1.olnt;
  59.     for (i = 1; i <= i__1; ++i) {
  60. /*                         !LOOP ON OBJECTS. */
  61.     if (! qhere_(i, rm) || (objcts_1.oflag1[i - 1] & VISIBT + 
  62.         NDSCBT) != VISIBT) {
  63.         goto L1000;
  64.     }
  65.     if ((objcts_1.oflag2[i - 1] & ACTRBT) != 0) {
  66.         i__2 = oactor_(i);
  67.         invent_(i__2);
  68.     }
  69.     if ((objcts_1.oflag1[i - 1] & TRANBT) == 0 && (
  70.         objcts_1.oflag2[i - 1] & OPENBT) == 0 || qempty_(i))
  71.          {
  72.         goto L1000;
  73.     }
  74.  
  75. /* OBJECT IS NOT EMPTY AND IS OPEN OR TRANSPARENT. */
  76.  
  77.     j = 573;
  78.     if (i != oindex_1.tcase) {
  79.         goto L600;
  80.     }
  81. /*                         !TROPHY CASE? */
  82.     j = 574;
  83.     if ((findex_1.brieff || findex_1.superf) && ! (full)) {
  84.         goto L1000;
  85.     }
  86. L600:
  87.     princo_(i, j);
  88. /*                         !PRINT CONTENTS. */
  89.  
  90. L1000:
  91.     ;
  92.     }
  93. } /* princr_ */
  94.  
  95. /* INVENT- PRINT CONTENTS OF ADVENTURER */
  96.  
  97. /* DECLARATIONS */
  98.  
  99. void invent_(adv)
  100. integer adv;
  101. {
  102.     /* System generated locals */
  103.     integer i__1;
  104.  
  105.     /* Local variables */
  106.     integer i, j;
  107.  
  108.     i = 575;
  109. /*                         !FIRST LINE. */
  110.     if (adv != aindex_1.player) {
  111.     i = 576;
  112.     }
  113. /*                         !IF NOT ME. */
  114.     i__1 = objcts_1.olnt;
  115.     for (j = 1; j <= i__1; ++j) {
  116. /*                         !LOOP */
  117.     if (objcts_1.oadv[j - 1] != adv || (objcts_1.oflag1[j - 1] & 
  118.         VISIBT) == 0) {
  119.         goto L10;
  120.     }
  121.     rspsub_(i, objcts_1.odesc2[advs_1.aobj[adv - 1] - 1]);
  122.     i = 0;
  123.     rspsub_(502, objcts_1.odesc2[j - 1]);
  124. L10:
  125.     ;
  126.     }
  127.  
  128.     if (i == 0) {
  129.     goto L25;
  130.     }
  131. /*                         !ANY OBJECTS? */
  132.     if (adv == aindex_1.player) {
  133.     rspeak_(578);
  134.     }
  135. /*                         !NO, TELL HIM. */
  136.     return;
  137.  
  138. L25:
  139.     i__1 = objcts_1.olnt;
  140.     for (j = 1; j <= i__1; ++j) {
  141. /*                         !LOOP. */
  142.     if (objcts_1.oadv[j - 1] != adv || (objcts_1.oflag1[j - 1] & 
  143.         VISIBT) == 0 || (objcts_1.oflag1[j - 1] & 
  144.         TRANBT) == 0 && (objcts_1.oflag2[j - 1] & 
  145.         OPENBT) == 0) {
  146.         goto L100;
  147.     }
  148.     if (! qempty_(j)) {
  149.         princo_(j, 573);
  150.     }
  151. /*                         !IF NOT EMPTY, LIST. */
  152. L100:
  153.     ;
  154.     }
  155. } /* invent_ */
  156.  
  157. /* PRINCO-    PRINT CONTENTS OF OBJECT */
  158.  
  159. /* DECLARATIONS */
  160.  
  161. void princo_(obj, desc)
  162. integer obj;
  163. integer desc;
  164. {
  165.     /* System generated locals */
  166.     integer i__1;
  167.  
  168.     /* Local variables */
  169.     integer i;
  170.  
  171.     rspsub_(desc, objcts_1.odesc2[obj - 1]);
  172. /*                         !PRINT HEADER. */
  173.     i__1 = objcts_1.olnt;
  174.     for (i = 1; i <= i__1; ++i) {
  175. /*                         !LOOP THRU. */
  176.     if (objcts_1.ocan[i - 1] == obj) {
  177.         rspsub_(502, objcts_1.odesc2[i - 1]);
  178.     }
  179. /* L100: */
  180.     }
  181. } /* princo_ */
  182.